-- 优惠券ID
local voucherId = ARGV[1]
-- 用户ID
local userId = ARGV[2]
-- 库存Key
local voucherKey = 'hmdp:seckill:stock:' .. voucherId
-- 订单Key
local orderKey = 'hmdp:seckill:order:' .. voucherId

-- 获取库存值
local stock = redis.call('get', voucherKey)
-- 判断库存是否存在且充足
if not stock or tonumber(stock) <= 0 then
    return 1
end

-- 判断用户是否下单
if (redis.call('sismember', orderKey, userId) == 1) then
    return 2
end
-- 扣减库存
redis.call('incrby', voucherKey, -1)
-- 将下单用户加入到已下单用户集合中
redis.call('sadd', orderKey, userId)
return 0